<?php

/**
 * Application model for Cake.
 *
 * This file is application-wide model file. You can put all
 * application-wide model-related methods here.
 *
 * PHP 5
 *
 * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
 * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
 *
 * Licensed under The MIT License
 * For full copyright and license information, please see the LICENSE.txt
 * Redistributions of files must retain the above copyright notice.
 *
 * @copyright     Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
 * @link          http://cakephp.org CakePHP(tm) Project
 * @package       app.Model
 * @since         CakePHP(tm) v 0.2.9
 * @license       MIT License (http://www.opensource.org/licenses/mit-license.php)
 */
App::uses('Model', 'Model');

/**
 * Application model for Cake.
 *
 * Add your application-wide methods in the class below, your models
 * will inherit them.
 *
 * @package       app.Model
 */
class AppModel extends Model {

	/**
	 * Number of associations to recurse through during find calls. Fetches only
	 * the first level by default.
	 *
	 * @var integer
	 */
	public $recursive = 0;
	public static $_ignoreOwner = array();

	public function ignoreOwner($val = null) {
		if (is_null($val)) {
			return !empty(self::$_ignoreOwner[$this->alias]);
		}
		self::$_ignoreOwner[$this->alias] = (bool) $val;
	}

//	public function beforeFind($queryData) {
//		if ($this->hasField('user_id') && !$this->ignoreOwner()) {
//			$queryData['conditions'][$this->alias . '.user_id'] = AuthComponent::user('id');
//		}
//		return $queryData;
//	}

	/**
	 * Returns true if a record with particular ID exists.
	 *
	 * If $id is not passed it calls `Model::getID()` to obtain the current record ID,
	 * and then performs a `Model::find('count')` on the currently configured datasource
	 * to ascertain the existence of the record in persistent storage.
	 *
	 * @param integer|string $id ID of record to check for existence
	 * @return boolean True if such a record exists
	 */
	public function exists($id = null) {
		if ($id === null) {
			$id = $this->getID();
		}
		if ($id === false) {
			return false;
		}
		return (bool) $this->find('count', array(
					'conditions' => array(
						$this->alias . '.' . $this->primaryKey => $id
					),
					'recursive' => -1
		));
	}

}
